The Internet is the world's largest electronic data network and continues to grow in geographical distribution and data capacity on a daily basis. Access to the Internet has become an essential part of the business process in organizations such as government, academia and commercial enterprises. The traffic directed to many popular Internet servers on the World Wide Web (Web) is growing rapidly. As a consequence, many techniques have been developed for scaling Web servers, for example by clustering computing nodes. Another technique for supporting a high traffic rate to popular sites is to cache data at caching servers external to the sites. More generally, offload servers are provided for processing some of the traffic targeted to the primary Web server.
One technique for offloading data from primary servers to offload servers, used by cache service providers such as Akamai Technologies (see www.akamai.com), is to alter the primary Web pages at the primary Web server, such that requests for embedded images in the Web pages go instead to the external servers of the cache service provider. In a typical Web page, the images are specified by Uniform Resource Locators (URLs), which typically identify the server from which the image is obtained and inserted onto the downloaded page. In the offloading technique used by cache service providers, the URL of the embedded images is modified to point to the cache service provider server(s). Using this technique, the Web browser first fetches the primary page from the home Web server. The client Web browser then determines that the URL for the embedded images is from the cache service provider. The client Web browser obtains the embedded image from the cache service provider rather than the home Web site. This technique results in significant static offloading, especially of network bandwidth, from the home Web server to the cache service provider.
Web requests from clients can be statically offloaded to offload servers using several different methods, one of which has been outlined above. In another method, all Web server requests to the primary server go first to one of the offload servers. If the offload service provider has the data to serve that request, it serves it directly to the requesting client. Otherwise, it routes the request to the primary Web Server, which returns the data to the offload server, which then returns it to the client.
One problem with the described cache offload approach is that all objects with modified URLs, such as the images mentioned above, get redirected to the cache service provider, regardless of whether the home Web server has the resources available to service the request. In fact, as shown and described in further detail below, the load on typical primary Web servers varies tremendously by day, time of day and day of year. To handle the peak load for the objects that cannot be redirected to the cache service provider, the primary Web server needs to have a significant network bandwidth, which is then sufficient to handle all of the offered load for a large fraction of the time. In fact, a primary Web server configured to handle peak expected requirements of non-offloadable objects can handle the entire offered load for most of the time. Only at the peak loads is it desirable, from the primary Web server loading standpoint, to offload some of the work to cache service providers.
U.S. Pat. No. 6,112,225 to Kraft et al. shows a task distribution processing system and methods whereby subscribing computers are used to perform computing tasks, typically a subtask of a large, aggregate task, during what would otherwise be idle time. The patent generally does not address the real-time, dynamic distribution of network processing requests as described herein.
The present inventors have determined that it would be desirable to be able to dynamically offload processing requirements from primary Web servers only when it is necessary to do so, for example because of limited Web server network bandwidth or limited Web server CPU capacity.